import actionObj from "@/common/hubRouterConfig";
import router from "@/router";

/**
 * 获取url具体参数值
 * @param {String}  variable  - 参数
 */
export function getQueryVariable(variable) {
    const reg = new RegExp("(^|&)" + variable + "=([^&]*)(&|$)", "i");
    const url = window.location.href.split("?")[1].match(reg);
    // console.log(url)
    if (url != null) {
        return decodeURI(url[2]); //decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。
    } else {
        return "";
    }
}

/**
 * Hub页跳转方法(页面跳转方法)
 * @param {String}  action  - 页面路由标识
 * @param {Object}  params  - 其他参数
 */
export function hubGoNext(action, params) {
    let nextPath = actionObj[action];
    router.push({
        path: nextPath,
        query: {
            action: getQueryVariable("action"), //同一个项目下最好都带上自己的action
            ...params,
        },
    });
}

/**
 * 通用跳转方法
 * @param {String}  actionPath  - 页面路由
 * @param {Object}  params  - 其他参数
 */
export function goNext(actionPath, params) {
    router.push({
        path: actionPath,
        query: {
            action: getQueryVariable("action"), //同一个项目下最好都带上自己的action
            ...params,
        },
    });
}

/**
 * 通用路由返回
 */
export function goBackRouter() {
    router.go(-1);
}
/**
 * 通用页面返回返回
 */
export function goBackView() {
    window.history.go(-1);
}
